$().ready(function() {
	albumView.galeryInit();
});

function albumView(){};
/**
 * Метод вызывается при загрузке страницы, чтобы инициировать галерею 
 */
albumView.galeryInit = function(){
	//Создаем панель
	$('#photosPreviewIn').jScrollPane({scrollbarWidth:10, showArrows:true, scrollbarMargin:0, arrowSize:9});
	//Определяем текущий основной элемент
	var intIdMainPhoto = $('#mainPhotoBlock img.selected').attr('id').substr(10);
	//Подсвечиваем нужное превью
	$('#preview_' + intIdMainPhoto).parent().removeClass('preview').addClass('previewSel');
	//Назначаем события клика по превью
	$('img.preview').each(function (i) {
    $(this).click(function () { albumView.previewClick(this); } );
	});
	//Подгружаем ближайших потомков
	var currentPreview = $('#preview_' + intIdMainPhoto);
	for(var i = 0; i < 3; i++) {
    currentPreview = currentPreview.parent().next().find('img');
    if(currentPreview.size) {
      var currentPreviewId = $(currentPreview).attr('id').substr(8);
      albumView.addMainPhotoHtml(currentPreview, currentPreviewId);
    } 
    else break;
	}
};

/**
 * Метод обрабатывает клик по превью
 * @param {Object} elPreview
 */
albumView.addMainPhotoHtml = function(elPreview, idPhoto){
  // Можно в td еще background добавить
	var previewSrc = $(elPreview).attr('src');
	var folder = previewSrc.substring(0, previewSrc.lastIndexOf('/') + 1);
	var src = folder + $(elPreview).attr('big'); 
	var htmlToAppend = '<table class="mainPhoto" cellpadding="0" cellspacing="0"><tbody><tr><td class="mainPhotoCell">';
	  htmlToAppend += '<img src="' + src + '" id="mainPhoto_' + idPhoto + '" alt="">';
	htmlToAppend += '</td></tr></tbody></table>';
	$('#mainPhotoBlock').append(htmlToAppend);
};

/**
 * Метод обрабатывает клик по превью
 * @param {Object} elPreview
 */
albumView.previewClick = function(elPreview){
  var intIdNewPhoto = $(elPreview).attr('id').substr(8);
  var indIdPrevPhoto = $('#photosPreviewIn .previewSel img').attr('id').substr(8);
  $('#photosPreviewIn .previewSel').removeClass('previewSel').addClass('preview');
  $(elPreview).parent().removeClass('preview').addClass('previewSel');
  $('#mainPhoto_' + indIdPrevPhoto).fadeOut(2000);
  if($('#mainPhoto_' + intIdNewPhoto).size()) {
    $('#mainPhoto_' + intIdNewPhoto).fadeIn(2000/*, function(){$(this).addClass('selected'); }*/);
  }
  else {
    albumView.addMainPhotoHtml(elPreview, intIdNewPhoto);
    setTimeout(function(){
      $('#mainPhoto_' + intIdNewPhoto).fadeIn(2000);
    }, 50);
  }
};

/**
 * Метод переключает галерею на следующее фото
 */
albumView.showNextPhoto = function(){
  var nextPreviewImage = $('#photosPreviewIn .previewSel').next().find('img');
  if($(nextPreviewImage).size) albumView.previewClick(nextPreviewImage);
};
/**
 * Метод переключает галерею на предыдущее фото
 */
albumView.showPrevPhoto = function(){
  var prevPreviewImage = $('#photosPreviewIn .previewSel').prev().find('img');
  if($(prevPreviewImage).size) albumView.previewClick(prevPreviewImage);
};